home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lantools / behold / userman.asc < prev    next >
Text File  |  1991-05-07  |  20KB  |  733 lines

  1. The Beholder
  2.  
  3.  
  4.  
  5.  
  6.  
  7. The SNMP-able Ethernet Monitor
  8.  
  9. By the DNPAP development group
  10. JPMvOorschot@et.tudelft.nl
  11. 5/7/91
  12.  
  13.  
  14.      The Beholder
  15. The Beholder is a software-only product that implements a ethernet network monitor on standard 
  16. PC hardware. The data collected can be obtained in three different ways, by looking at the PC 
  17. screen, by requesting the data as SNMP variables, and by using TFTP to collect files with data.  
  18. A standard ethernet Local Area Network (LAN) can contain several Beholder monitoring 
  19. stations, each containing several network interfaces. Normal use will be to collect the data of all 
  20. present Beholder stations to the network management node via SNMP. This data can then be 
  21. processed to obtain problem reports, growth figures and performance measurements.
  22. The Beholder was developed by the Data Network Performance Analysis Group (DNPAP) of the 
  23. Delft University of Technology. It is used as an important data collector in the "Intelligent 
  24. Network Management  (INEMA)" project. This project seeks to apply automated reasoning 
  25. techniques to network managements.
  26. Main design goals of The Beholder were:
  27.  
  28.     o    Minimum loss of packets
  29.     o    Continues operation
  30.     o    Appliance to Standards wherever possible.
  31.     o    Ease of Use
  32. The result of the developments is a PC based software package,  capable of monitoring all traffic 
  33. on one or more ethernet segments. The Beholder can be easily integrated in a SNMP based 
  34. network management environment like Sun Net Manager.
  35.     
  36.      Hardware and Software
  37. The Beholder software runs on a standard 80<x>86 based Personal Computer, containing a 
  38. network interface for which a "packet driver" network device driver is available. The Beholder 
  39. was developed in ANSI C using the Microsoft C 6.0 compiler and two very small assembler files. 
  40. For busy ethernet network, the PC should be at least a 80286 at 10 Mhz, but a 80386 at 20 Mhz to  
  41. be save.
  42. The WD 8003 family of ethernet cards is the preferred choice for ethernet network interface, but 
  43. the 3COM line and the Novell NI1000/2000 will work fine.
  44. If the Beholder is used as monitoring station in combination with a network management station 
  45. that collects the measurement data, no keyboard, mouse or display are needed as far as The 
  46. Beholder is concerned. If The Beholder is used stand-alone, a standard PC display (colour is 
  47. nice), keyboard and mouse can be used to view the results of the monitoring PC. The Beholder 
  48. uses no graphics.
  49.      Installation
  50.      Hardware
  51. For installation of the hardware needed, the PC and the ethernet board, see the 
  52. documentation that came with those products. The most common parameters that have to 
  53. be set  are:
  54.     o    I/O address:    (like:    0x280)
  55.     o    RAM address:    (like:    0xd000)
  56.     o    IRQ:        (like:    0x03)
  57.  
  58. These parameters have to be chosen for the ethernet board so that there is no conflict 
  59. with other hardware in the PC like the disk controller, the VGA video adapter or other 
  60. build-in hardware. The best way to check the validity of a set of values is to start a well 
  61. known network product, to use the test software that comes with the "packet-driver" set, 
  62. to use the diagnostics tools that comes with the ethernet card, or to just start The 
  63. Beholder and see what happens. Remember, an ethernet is never silent for more then a 
  64. few seconds in other then test environments.
  65.  
  66.      Software
  67. The installation of the software consists of  several steps:
  68.  
  69.     o    copy beholder software to the desired directory on hard-disk     
  70.     or floppy-disk.
  71.     o    configure the beholder by editing BEHOLDER.INI
  72.     o    edit BEHOLDER.BAT to start the correct packet driver
  73.     o    start The Beholder
  74.  
  75. Note that no other network software must use the same ethernet card  as The Beholder is 
  76. using.
  77.  
  78.      Beholder.ini
  79. Beholder.ini is the configuration file of The Beholder. It is somewhat like the Microsoft 
  80. .INI files found in Windows, OS/2 and other software packages.
  81. The file is split in several sections, each section headed by a line:
  82.  
  83.     [section-name]
  84.  
  85. Each section contains text lines with configuration information. The format depends on 
  86. the section in which the line is in. Comments can be inserted by preceding the comment 
  87. by the '#' or the ';' character. 
  88. See appendix A for a detailed description of the parameters in Beholder.ini. For a quick 
  89. start, follow the following guidelines.
  90. You should edit Beholder.ini using a standard asci editor. Change  only the following 
  91. parameters:
  92.  
  93.     Section [BUFFER]
  94.         numberbuffers = 5       # lower this to 4 if your PC doesn't have enough
  95.                         # memory
  96.         buffersize = 65500    
  97.     Section [IPDOS]
  98.         nd0address = <your-ip-address>            
  99.     
  100.     Section [ROUTES]
  101.         hoststat    default    <your-ip-gateway>
  102.         hoststat   127.0.0.1    127.0.0.1
  103.         hoststat   <your-ip-address> 127.0.0.1
  104.         netstat    <your-ip-net>    <your-ip-address>
  105.  
  106.     Section [SYSTEM]
  107.         Description = <Description-of-your-monitoring-pc>
  108.         Contact        = < Name-and-telephone-of-contact-person >
  109.         Name           = < Name-of-monitoring-pc >   
  110.         Location      = < description-of-location-of-monitoring-pc >
  111.  
  112.     Section [AUTHENTICATION]
  113.         Community public
  114.             AddAddress    <mgmnt-station-ip-address> <and-mask>
  115.             { AddAddress    < your-ip-address > <next-and-mask>}
  116.         Community trap
  117.             AddAddress    <mgmnt-station-ip-address> <and-mask>
  118.             { AddAddress    < your-ip-address > <next-and-mask>}
  119.  
  120.     Section [AGENT]
  121.         TrapAddress    =  <mgmnt-station-ip-address>
  122.  
  123. You can look at the file Beholder.xmp for the values the DNPAP group uses.
  124. Notice that The Beholder needs its own IP-address. The Beholder will use the first 
  125. ethernet-card it finds as its output port for UDP/IP traffic.You will also have to 
  126. determine which community you want to use, and which IP hosts are allowed to collect 
  127. the measurement data. 
  128.     
  129.  
  130.  
  131.      Beholder.bat
  132.  
  133. The Beholder.bat file loads the packet driver(s) and  starts The Beholder. After The 
  134. Beholder is finished, the packet drivers(s) is removed.
  135. You should adjust the Beholder.bat file to fit your ethernet card and packet driver. The 
  136. packet driver should be from the 8.x distribution. Older version will probably work, but 
  137. the 8.x version and later are the only ones tested.
  138. Look at the Beholder.bat in the distribution for an example of a Western Digital 
  139. WD8003 driver loaded on IRQ 0x3, IO/address 0x280 and RAM address 0xd000. 
  140. The beholder will find all the packet drivers that are activated in the system and use 
  141. them for monitoring purposes.
  142.      The Beholder Output
  143. The Beholder has three main method of presenting the measurement results, the screen, SNMP 
  144. variables and TFTP-able files. The last two methods require you to have a network management 
  145. workstation with a TCP/IP stack and SNMP capabilities. By use of the screen, the monitoring PC 
  146. can be used as a stand-alone tool. This is not the standard mode of operation, but if it is all you 
  147. have, use it. 
  148.      Screen Output
  149. When you start The Beholder, the screen is filled with a window-based representation of the 
  150. activity on your network. There are four major windows, the network load, the ethernet-type 
  151. distribution, the packet-length distribution and a status window. By using the <SHIFT-F4> key, 
  152. you can position and arrange the windows. By using the <ESC> key, you can start, stop and reset 
  153. applications. During normal operation, you won't need this keys. If you have more then one 
  154. ethernet card in you monitoring station, you can switch between these cards pressing <0>, <1> ....
  155.      SNMP Output
  156. The Beholder has a full featured SNMP interface. It can report all its findings using an extension 
  157. to the standard MIB2 database. The variables are defined in the file "Beholder.snm". The SNMP 
  158. interface present the data as variables named by a ASN.1 number. These variables can be 
  159. requested through the UDP/IP network protocol. These requests are normally generated by a 
  160. network management station.
  161.      TFTP-able File Output
  162. The current version of The Beholder has a limited capability of dumping data to files. The only 
  163. files that can be retrieved in this version are the debug- and the error files. In future versions of 
  164. The Beholder, a source/destination matrix and packet-trace files can be generated and collected. 
  165. TFTP is a file transfer protocol of the TCP/IP suite and is implemented by every TCP/IP 
  166. implementation known to us.
  167. The Beholder has one extension to the standard TFTP file system. A normal TFTP file request 
  168. has the following layout:
  169.  
  170.     get /directory1/directory2/filename
  171.  
  172. With The Beholder, it is possible to refer to a disk by using the following filename:
  173.  
  174.     get //disk/directory1/directory2/filename
  175.  
  176. for example:
  177.  
  178.     get //c/beholder/error.out
  179.      Network Management
  180.  
  181. When using The Beholder to really manage your ethernet network, you should have a beholder 
  182. tentacle in each of the segments that make up your ethernet. The data should be collected in a 
  183. central network management station on a regular bases. Reports can then be generated of the load 
  184. and traffic characteristics of any period of time.
  185.      Developments
  186.  
  187. There are a number of development under way which concern the Beholder.
  188. The first is a developers toolkit. The structure of the Beholder is such that independent 
  189. applications can be linked to the kernel of The Beholder. Each application present in the runtime 
  190. version of The Beholder can be activated at any time. An application gets a message in cases such 
  191. as the arrival  of a packet, the elapse of a second, or if there is freetime to be burned. 
  192. The seconf development is of a packet-tracing application that can be activated through SNMP 
  193. variables.  The resulting trace-file can then be collected using the TFTP file transfer protocol.
  194. The third development is on the network management side of the medal. A SAS database is being 
  195. build and SAS procedures to interpret the result and generate report. The data is currently being 
  196. collected by the SUN NetManagement software. We are also looking in to the possibility to 
  197. connect the G2 real-time expert system environment to the Sun software to make a real-time 
  198. analysis of traps and other network events.
  199.      Credit and Disclaimer
  200.  
  201. The Beholder is the result of a lot of work by a number of people:
  202.  
  203.     Jan van Oorschot    Project "leader" and Sage
  204.     Ling Thio        First version and user interface
  205.     Wim van Campen    UDP/IP  and applications
  206.     Dirk Wisse        SNMP ,kernel adjustments and SD matrix
  207.     Alfred Kayser        Debugging ,assembler and DSCHEME
  208.     Kees and Wil        First version of the Source/Destination matrix
  209.     Bert Meijs        Technical support
  210.  
  211. We don't want money for our work. As we work on a University, we would like invitations to 
  212. publish and present our papers concerning The Beholder and the INEMA project. If you really 
  213. have use of our products, you could even pay for the trip! (Hotelroom with shower would be 
  214. nice). We have papers on the kernel of The Beholder, the UDP/IP stack, ethernet performance 
  215. measurements, bridge positioning and a lot more. A few of them have been published, but 
  216. repetition is the essence of learning !
  217. The very least one could is to send us a note with bugs, comments, compliments and The Answer 
  218. To The Final Question.
  219. Greetings and be careful out there 
  220. Jan
  221. JPMvOorschot@et.tudelft.nl
  222. Appendix A: Beholder.ini parameters
  223.  
  224. The file Beholder.ini contains all configuration parameters for The Beholder system. The file is 
  225. partitioned in serveral sections. Each section contains configuration onformation about a part of 
  226. The Beholder.  This appendix describes the configuration parameters according to the section in 
  227. which they appear. 
  228.   section in Beholder.ini is identified by a line with the following contents
  229.  
  230.     [section-name]
  231.  
  232.      Buffer
  233. This section configures the memory allocation of The Beholder. This section only contains 
  234. parameters.
  235.  
  236. numbuffers
  237. Name    
  238. numbuffers
  239.  
  240. Description
  241. number of buffers to be allocated
  242.  
  243. Values    
  244. 3 4 5 ....
  245.  
  246. Example
  247. 5    
  248.  
  249.  
  250. buffersize
  251. Name    
  252. buffersize
  253.  
  254. Description
  255. size of one buffer
  256.  
  257. Values    
  258. 65500
  259.  
  260. Example
  261. 65500    
  262.  
  263. Note
  264. no other value then 65500 is accepted
  265.  
  266.  
  267.  
  268.      DISPATCHER
  269. This section configures the ring buffers of The Beholder. These buffers are used to store network 
  270. packets that can't be handled imidiatedly by The Beholder.
  271. SizeSmall
  272. Name    
  273. SizeSmall
  274.  
  275. Description
  276. Maximum size of a small packet
  277.  
  278. Values    
  279. 64...1514
  280.  
  281. Example
  282. 192
  283.  
  284. Note
  285. 192 is probably the best value
  286.  
  287. CountSmall
  288. Name    
  289. CountSmall
  290.  
  291. Description
  292. number of buffers for small packets
  293.  
  294. Values    
  295. 1...
  296.  
  297. Example
  298. 75
  299.  
  300. Note
  301. increasing this value will let The Beholder 
  302. lose less packets, but eats memory.
  303.  
  304. SizeLarge
  305. Name    
  306. SizeLarge
  307.  
  308. Description
  309. Maximum size of a large packet 
  310.  
  311. Values    
  312. 64...1514
  313.  
  314. Example
  315. 1514
  316.  
  317. Note
  318. 1514 is probably the best value
  319.  
  320. CountLarge
  321. Name    
  322. CountLarge
  323.  
  324. Description
  325. Number of Buffers for large packets
  326.  
  327. Values    
  328. 1 ...
  329.  
  330. Example
  331. 100
  332.  
  333. Note
  334. increasing this one will cost you ...
  335.  
  336.      IPDOS
  337. This section configures the IP stack in The Beholder. Each Beholder is a full functional IP node, 
  338. and should have all information needed by an IP node. The routing information  is stored in the 
  339. section [ROUTES].
  340.  
  341. Forwarding
  342. Name    
  343. Forwarding
  344.  
  345. Description
  346. Indicates if The Beholder should forward IP 
  347. packets not mend for  the IP address of the 
  348. Beholder. Setting this parameter to 'no'  will 
  349. disable The Beholder to function as IP router.
  350.  
  351. Values    
  352. yes/no
  353.  
  354. Example
  355. yes
  356.  
  357. Note
  358.  
  359.  
  360.      ROUTES
  361. This section is not formatted like the other sections. Each line contains information for the IP 
  362. routing done by The Beholder. Each line has the following format:
  363.     
  364.     <operation>    <IP-address>    <and-mask>
  365.  
  366. The following  operations are possible:
  367.  
  368.     hostmodify:    add a dynamic route to a host , this can be changed             
  369.     by redirect messages.
  370.     hoststat:    add a static route to a host .
  371.     netmodify:    add a dynamic route to a net.
  372.     netstat:    add a static route to a net.
  373.  
  374. If The Beholder receives an IP message, and tries to find the correct routing entry, it takes the 
  375. destination IP address, "AND"'s it with the <and-mark>, and does a byte-compare with the <IP-
  376. address> of each entry in the routing table.
  377. If <IP-address> is "default", it will be used for all messages that don't match an other entry in the 
  378. routing table.
  379.  
  380. The routing Section should always contain:
  381.  
  382.     - definition of the default IP gateway on your own net
  383.     - definition of the loopback interface 127.0.0.1
  384.     - route to your own IP address through 127.0.0.1
  385.     - route to your own network
  386.  
  387.      SYSTEM
  388. This section contains system information that is replied when SNMP requests are send to this 
  389. Beholder.
  390.  
  391. Description
  392. Name    
  393. Description
  394.  
  395. Description
  396. String describing this beholder
  397.  
  398. Values    
  399. any-string
  400.  
  401. Example
  402. "The Beholder, version 1bA"
  403.  
  404. Note
  405.  
  406.  
  407. Contact
  408. Name    
  409. Contact
  410.  
  411. Description
  412. Name of contact person for this Beholder
  413.  
  414. Values    
  415. any-string
  416.  
  417. Example
  418. jan van Oorschot (6179)
  419.  
  420.  
  421.  
  422.  
  423. Name
  424. Name    
  425. Name
  426.  
  427. Description
  428. Name of for this Beholder
  429.  
  430. Values    
  431. any-string
  432.  
  433. Example
  434. Beholder1
  435.  
  436. Location
  437. Name    
  438. Location
  439.  
  440. Description
  441. Location of the Beholder
  442.  
  443. Values    
  444. any-string
  445.  
  446. Example
  447. Room 9.03
  448.  
  449.  
  450.      AUTHENTICATION
  451. The Authentication section configures the communities for the SNMP variables. It determines 
  452. which users get access to which SNMP variables. The layout of this section is again not conform 
  453. the normal variable/value standard.
  454. This section contains subsection, each subsection of the form:
  455.  
  456. Community <Community-name>
  457.     AddAddress    <hostnumber1>     <and-mask1>
  458.     AddAddress    <hostnumber2>    <and-mask2>
  459.  
  460. There is a subsection for each community you there is in The Beholder. At the moment, all 
  461. variables are in the "public" community.
  462.  
  463.      AGENT
  464. The AGENT section describes the SNMP agent as it is implemented in The Beholder. The section 
  465. section used to configure the SNMP agent is the AUTHENTICATION section.
  466.  
  467. ObjectID
  468. Name    
  469. ObjectID
  470.  
  471. Description
  472. ASN1 object ID of Beholder variable-tree
  473.  
  474. Values    
  475. ASN1-variable
  476.  
  477. Example
  478. 1.3.6.1.4.1.99
  479.  
  480. Port
  481. Name    
  482. Port
  483.  
  484. Description
  485. UDP port used by SNMP agent
  486.  
  487. Values    
  488. 161
  489.  
  490. Example
  491. 161
  492.  
  493. Trap
  494. Name    
  495. Trap
  496.  
  497. Description
  498. Enable/disable SNMP trap generation
  499.  
  500. Values    
  501. enable/disable
  502.  
  503. Example
  504. enable
  505.  
  506. TrapPort
  507. Name    
  508. TrapPort
  509.  
  510. Description
  511. UDP port used to send traps to
  512.  
  513. Values    
  514. 162
  515.  
  516. Example
  517. 162
  518.  
  519. Trapaddress
  520. Name    
  521. TrapAddress
  522.  
  523. Description
  524. IP address of network managent station 
  525. handling SNMP traps
  526.  
  527. Values    
  528. IP address
  529.  
  530. Example
  531. 130.161.144.171
  532.  
  533. TrapCommunity
  534. Name    
  535. TrapCommunity
  536.  
  537. Description
  538. Community used when sending traps
  539.  
  540. Values    
  541. any-string
  542.  
  543. Example
  544. trap
  545.  
  546.  
  547.      MATRIX0
  548.  
  549. This section configures the source destination matrix for interface 0.
  550.  
  551. HostTableLength
  552. Name    
  553. HostTableLength
  554.  
  555. Description
  556. Maximum number of hosts that can be kept 
  557. by the SD matrix
  558.  
  559. Values    
  560. integer
  561.  
  562. Example
  563. 1500
  564.  
  565.  
  566. ConnectioTableLength
  567. Name    
  568. ConnectionTableLength
  569.  
  570. Description
  571. Maximum number of connections that can be 
  572. kept by the SD matrix.
  573.  
  574. Values    
  575. integer
  576.  
  577. Example
  578. 3000
  579.  
  580.  
  581. HashTableLength
  582. Name    
  583. HashTableLength
  584.  
  585. Description
  586. Number of entries in the hosts hash table. 
  587. Should be bigger then HostTableLength
  588.  
  589. Values    
  590. integer
  591.  
  592. Example
  593. 2000
  594.  
  595.  
  596.      ERRORS
  597.  
  598. ErrorFile
  599. Name    
  600. ErrorFile
  601.  
  602. Description
  603. name of file to which error messages will be 
  604. send
  605.  
  606. Values    
  607. file-name
  608.  
  609. Example
  610. error.out
  611.  
  612. DebugFile
  613. Name    
  614. DebugFile
  615.  
  616. Description
  617. name of file to which debug messages will be 
  618. send.
  619.  
  620. Values    
  621. file-name
  622.  
  623. Example
  624. debug.out
  625.  
  626. DebugLevel
  627. Name    
  628. DebugLevel
  629.  
  630. Description
  631. Level of debugging. 0 is no debugging, 6 is 
  632. highest level of debugging
  633.  
  634. Values    
  635. integer 0<= int <= 6
  636.  
  637. Example
  638. 0
  639.  
  640.  
  641.      GENERIC
  642.      MATRIX
  643.      DISPLAY
  644. etc
  645.  
  646. Every application in The Beholder has its own section. The name of the section is the name of the 
  647. application. Type ESC in a running Beholder to see the applications. If you are not sure how to 
  648. set these variables, leave them out, the defaults are OK.
  649. In each application section the following variables can be defined:
  650.  
  651. EventMask
  652. Name    
  653. EventMask
  654.  
  655. Description
  656. bitmask describing which events to send to 
  657. the application during Beholder run-time
  658.  
  659. Values    
  660. #define DPE_SHOW        0x0001              /* 
  661. Dispatcher Events           */
  662. #define DPE_START       0x0002
  663. #define DPE_STOP         0x0004
  664. #define DPE_HIDE          0x0008
  665. #define DPE_RESET       0x0010
  666. #define DPE_KEYPRESSED  0x0020
  667. #define DPE_INIT            0x0040
  668. #define DPE_END           0x0080
  669. #define DPE_RECEIVEPKT  0x0100
  670. #define DPE_FREETIME 0x0200
  671. #define DPE_EVERYSECOND 0x0400
  672. #define DPE_TIMER        0x0800
  673.  
  674. Example
  675. 0xffff
  676.  
  677. StartMask
  678. Name    
  679. EventMask
  680.  
  681. Description
  682. bitmask describing which events should be 
  683. generated during startup of the application. 
  684. These can be used to initialise the application.
  685.  
  686. Values    
  687. #define DPE_SHOW        0x0001              /* 
  688. Dispatcher Events           */
  689. #define DPE_START       0x0002
  690. #define DPE_STOP         0x0004
  691. #define DPE_HIDE          0x0008
  692. #define DPE_RESET       0x0010
  693. #define DPE_KEYPRESSED  0x0020
  694. #define DPE_INIT            0x0040
  695. #define DPE_END           0x0080
  696. #define DPE_RECEIVEPKT  0x0100
  697. #define DPE_FREETIME 0x0200
  698. #define DPE_EVERYSECOND 0x0400
  699. #define DPE_TIMER        0x0800
  700.  
  701. Example
  702. 0x0003
  703.  
  704. TimerValue
  705. Name    
  706. TimerValue
  707.  
  708. Description
  709. time-interval  in seconds in which the 
  710. application runs. After an interval, the 
  711. application is reset, and starts again.
  712.  
  713. Values    
  714. integer
  715.  
  716. Example
  717. 500
  718.  
  719.  
  720.  
  721.  
  722. Beholder User Manual
  723. 3
  724.  
  725.  
  726.  
  727. 5/7/91
  728. 11:58 AM
  729.  
  730.  
  731.  
  732.  
  733.